package main

import (
	"fmt"
	"math/rand"
)

func main() {
	// 打印九九乘法表
	fmt.Println("九九乘法表")
	multiplication_table()
	fmt.Println("*************************************************************")
	// 随机数生成
	random_20()
	fmt.Println("*************************************************************")
	// 打印100以内的斐波那契数列
	fibonacci()
}

// 作业1：打印九九乘法表
func multiplication_table() {
	for i := 1; i <= 9; i++ {
		for j := 1; j <= i; j++ {
			if j >= 2 && i*j < 10 {
				fmt.Printf("%v*%v=%v  ", j, i, i*j)
			} else {
				fmt.Printf("%v*%v=%v ", j, i, i*j)
			}
		}
		fmt.Println()
	}
}

// 作业2：随机生成20以内的20个非0正整数，打印出来。对生成的数值，第单数个（不是索引）累加求和，
// 第偶数个累乘求积。打印结果
func random_20() {
	sum := 0
	product := 1
	fmt.Println("随机生成20以内的20个非0正整数如下：")
	for i := 0; i < 20; i++ {
		num := rand.Intn(20) + 1
		fmt.Printf("%v ", num)
		if (i+1)%2 == 1 {
			sum += num
		} else {
			product *= num
		}
	}
	fmt.Println()
	fmt.Printf("第单数个累加求和是：%v", sum)
	fmt.Println()
	fmt.Printf("第偶数个累乘求积是：%v", product)
	fmt.Println()
}

// 作业3：打印100以内的斐波那契数列
func fibonacci() {
	f1 := 1
	f2 := 1
	fn := 0
	fmt.Print("100以内的斐波那契数列是：")
	fmt.Printf("%v %v ", f1, f2)
	for {
		fn = f1 + f2
		if fn > 100 {
			break
		}
		fmt.Printf("%v ", fn)
		f1 = f2
		f2 = fn
	}
}

// 阿飞老师的批改
// 代码逻辑清晰，注释明了
